package br.com.unip.menudroid.database;

import java.util.ArrayList;
import java.util.List;

import br.com.unip.menudroid.model.PedidoProduto;
import br.com.unip.menudroid.util.SQLiteHelper;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class PedidoProdutoDAO {
	private SQLiteHelper dbHelper;
	private SQLiteDatabase db;

	public PedidoProdutoDAO(Context ctx) {
		dbHelper = new SQLiteHelper(ctx, "menuDroid", 1);
		db = dbHelper.getWritableDatabase();
	}

	public int inserirPedidoProduto(PedidoProduto pedido) {
		ContentValues values = new ContentValues();
		values.put(PedidoProduto.IDPRODUTO, pedido.idProduto);
		values.put(PedidoProduto.NOMEPRODUTO, pedido.nomeProduto);
		values.put(PedidoProduto.VALOR, pedido.valor);
		values.put(PedidoProduto.QUANTIDADE, pedido.quantidade);
		values.put(PedidoProduto.OBSERVACAO, pedido.observacao);
		
		int id = (int) db.insert("PedidoProduto", null, values);
		fechar();
		return id;
	}

	public List<PedidoProduto> listarPedidoProduto() {
		List<PedidoProduto> listaPedidoProduto = new ArrayList<PedidoProduto>();

		Cursor cursor = db.query("PedidoProduto", null, null, null, null, null,	null);
		cursor.moveToFirst();
		while (!cursor.isAfterLast()) {
			PedidoProduto lPedidoProduto = cursorToPedidoProduto(cursor);
			listaPedidoProduto.add(lPedidoProduto);
			cursor.moveToNext();
		}

		fechar();
		cursor.close();
		return listaPedidoProduto;
	}
	
    private PedidoProduto cursorToPedidoProduto(Cursor cursor) {
        PedidoProduto lPedidoProduto = new PedidoProduto();
        lPedidoProduto.setIdPedidoProduto(cursor.getInt(0));
        lPedidoProduto.setIdProduto(cursor.getInt(1));
        lPedidoProduto.setNomeProduto(cursor.getString(2));
        lPedidoProduto.setValor(cursor.getDouble(3));
        lPedidoProduto.setQuantidade(cursor.getLong(4));
        lPedidoProduto.setObservacao(cursor.getString(5));
        return lPedidoProduto;
    }
    
    public void excluir(PedidoProduto pedidoProduto) {
    	db.delete("PedidoProduto", "_id =" + pedidoProduto.getIdPedidoProduto(), null);
    	fechar();
    }
    
    public void limparPedido() {
    	db.delete("PedidoProduto", null, null);
    	fechar();
    }

	public void fechar() {
		if (db != null) {
			db.close();
		}
	}
}
